একটি টেবিলে ঢোকান
MySQL-এ একটি টেবিল তৈরি করতে, "INSERT INTO" বিবৃতিটি ব্যবহার করুন।
উদাহরণ
"গ্রাহক" টেবিলে একটি রেকর্ড সন্নিবেশ করান:
let mysql = require('mysql');
let con = mysql.createConnection({
host: "localhost",
user: "yourusername",
password: "yourpassword",
database: "mydb"
});
con.connect(function(err) {
if (err) throw err;
console.log("Connected!");
let sql = "INSERT INTO customers (name, address) VALUES ('Company Inc', 'Highway 37')";
con.query(sql, function (err, result) {
if (err) throw err;
console.log("1 record inserted");
});
});
উপরের কোডটি "demo_db_insert.js" ফাইলে সংরক্ষণ করুন এবং ফাইলটি চালান:
C:\Users\Your Name>node demo_db_insert.js
এটি আপনাকে এই ফলাফল দেবে:
Connected!
1 record inserted
গুরুত্বপূর্ণ নোট:
- কলামের ক্রম:VALUES-এর মানগুলি অবশ্যই কলামগুলির ক্রম অনুসারে মেলে৷
- ডেটা প্রকার:সন্নিবেশ করা মানগুলি অবশ্যই কলামের ডেটা প্রকারের সাথে মেলে
- স্ট্রিং মান:স্ট্রিং মান একক উদ্ধৃতি মধ্যে আবদ্ধ করা আবশ্যক
একাধিক রেকর্ড ঢোকানো
একাধিক রেকর্ড সন্নিবেশ করতে, মান সম্বলিত একটি অ্যারে তৈরি করুন এবং sql-এ একটি প্রশ্ন চিহ্ন সন্নিবেশ করুন, যা মান অ্যারে দ্বারা প্রতিস্থাপিত হবে:
INSERT INTO customers (name, address) VALUES ?
উদাহরণ
ডেটা দিয়ে "গ্রাহক" টেবিলটি পূরণ করুন:
let mysql = require('mysql');
let con = mysql.createConnection({
host: "localhost",
user: "yourusername",
password: "yourpassword",
database: "mydb"
});
con.connect(function(err) {
if (err) throw err;
console.log("Connected!");
let sql = "INSERT INTO customers (name, address) VALUES ?";
let values = [
['John', 'Highway 71'],
['Peter', 'Lowstreet 4'],
['Amy', 'Apple st 652'],
['Hannah', 'Mountain 21'],
['Michael', 'Valley 345'],
['Sandy', 'Ocean blvd 2'],
['Betty', 'Green Grass 1'],
['Richard', 'Sky st 331'],
['Susan', 'One way 98'],
['Vicky', 'Yellow Garden 2'],
['Ben', 'Park Lane 38'],
['William', 'Central st 954'],
['Chuck', 'Main Road 989'],
['Viola', 'Sideway 1633']
];
con.query(sql, [values], function (err, result) {
if (err) throw err;
console.log("Number of records inserted: " + result.affectedRows);
});
});
উপরের কোডটি "demo_db_insert_multiple.js" ফাইলে সংরক্ষণ করুন এবং ফাইলটি চালান:
C:\Users\Your Name>node demo_db_insert_multiple.js
এটি আপনাকে এই ফলাফল দেবে:
Connected!
Number of records inserted: 14
উপসংহার মানে
একটি ক্যোয়ারী চালানোর সময়, একটি ফলাফল বস্তু ফিরে আসে।
ফলাফল বস্তু ক্যোয়ারী সময়সূচী প্রভাবিত কিভাবে সম্পর্কে তথ্য রয়েছে.
উপরের উদাহরণ থেকে প্রত্যাবর্তিত ফলাফল বস্তু এই মত দেখায়:
{
fieldCount: 0,
affectedRows: 14,
insertId: 0,
serverStatus: 2,
warningCount: 0,
message: '\'Records:14 Duplicated: 0 Warnings: 0',
protocol41: true,
changedRows: 0
}
বৈশিষ্ট্য মান এই মত প্রদর্শিত হতে পারে:
উদাহরণ
প্রভাবিত সারির সংখ্যা ফেরত দিন:
console.log(result.affectedRows)
এটি এই ফলাফল তৈরি করবে:
14
| বৈশিষ্ট্য | ব্যাখ্যা |
|---|---|
| affectedRows | ঢোকানো, আপডেট করা বা মুছে ফেলা সারিগুলির সংখ্যা৷ |
| insertId | AUTO_INCREMENT কলামের জন্য ID সন্নিবেশ করুন |
| changedRows | আপডেট বিবৃতি দ্বারা পরিবর্তিত সারির সংখ্যা |
| warningCount | ক্যোয়ারী দ্বারা উত্পন্ন সতর্কতা সংখ্যা |
সন্নিবেশিত আইডি পুনরুদ্ধার করা হচ্ছে
একটি স্বয়ংক্রিয়-বর্ধিত আইডি ক্ষেত্র সহ সারণির জন্য, আপনি ফলাফল অবজেক্ট জিজ্ঞাসা করে যে সারিটি সন্নিবেশ করেছেন তার আইডি পেতে পারেন৷
দ্রষ্টব্য:
শুধুমাত্র একটি সারি ঢোকানো প্রয়োজন যাতে সন্নিবেশিত আইডি পুনরুদ্ধার করা যায়।
উদাহরণ
"গ্রাহক" টেবিলে একটি রেকর্ড ঢোকান এবং আইডি ফেরত দিন:
let mysql = require('mysql');
let con = mysql.createConnection({
host: "localhost",
user: "yourusername",
password: "yourpassword",
database: "mydb"
});
con.connect(function(err) {
if (err) throw err;
let sql = "INSERT INTO customers (name, address) VALUES ('Michelle', 'Blue Village 1')";
con.query(sql, function (err, result) {
if (err) throw err;
console.log("1 record inserted, ID: " + result.insertId);
});
});
উপরের কোডটি "demo_db_insert_id.js" ফাইলে সংরক্ষণ করুন এবং ফাইলটি চালান:
C:\Users\Your Name>node demo_db_insert_id.js
এটি আপনাকে এমন কিছু ফিরিয়ে দেবে:
1 record inserted, ID: 15
উন্নত সন্নিবেশ কৌশল
ভেরিয়েবল দ্বারা সন্নিবেশ
ভেরিয়েবল ব্যবহার করে মান সন্নিবেশ করান:
const name = "John Doe";
const address = "123 Main Street";
const sql = "INSERT INTO customers (name, address) VALUES (?, ?)";
con.query(sql, [name, address], function (err, result) {
if (err) throw err;
console.log("Record inserted with ID: " + result.insertId);
});
ত্রুটি হ্যান্ডলিং সঙ্গে সন্নিবেশ
সঠিক ত্রুটি পরিচালনার সাথে সন্নিবেশ করুন:
con.query("INSERT INTO customers (name, address) VALUES (?, ?)",
["John", "123 Street"],
function (err, result) {
if (err) {
console.error("Error inserting record:", err.message);
return;
}
console.log("Record inserted successfully. ID:", result.insertId);
}
);
একবারে একাধিক সন্নিবেশ
একবারে একাধিক টেবিলে ঢোকান:
// Insert into multiple tables
const customerSQL = "INSERT INTO customers (name, email) VALUES (?, ?)";
const orderSQL = "INSERT INTO orders (customer_id, amount) VALUES (?, ?)";
con.query(customerSQL, ["John", "john@example.com"], function (err, result) {
if (err) throw err;
const customerId = result.insertId;
// Now insert into orders table
con.query(orderSQL, [customerId, 100.50], function (err, result) {
if (err) throw err;
console.log("Customer and order created successfully");
});
});
সন্নিবেশের জন্য সর্বোত্তম অনুশীলন
নিরাপত্তা
- SQL ইনজেকশন প্রতিরোধ করতে প্রশ্ন চিহ্ন স্পেস ব্যবহার করুন
- সর্বদা ব্যবহারকারীর ইনপুট যাচাই করুন
- ডেটা ক্লিনজিং ফাংশন ব্যবহার করুন
- স্পষ্টভাবে ত্রুটি বার্তা প্রদর্শন করবেন না
কর্মক্ষমতা
- বড় সন্নিবেশের জন্য একটি বহু-সারি সন্নিবেশ ব্যবহার করুন
- অপ্রয়োজনীয় সন্নিবেশ এড়িয়ে চলুন
- ঘন ঘন সন্নিবেশের জন্য সংযোগ পুলিং ব্যবহার করুন
- বড় ডেটা সেটের জন্য ব্যাচ সন্নিবেশ ব্যবহার করুন
ডেটা অখণ্ডতা
- ডাটাবেসের সীমাবদ্ধতাকে সম্মান করুন
- অপরিবর্তিত তথ্য সন্নিবেশ নিশ্চিত করুন
- বিদেশী মূল সম্পর্ক বজায় রাখুন
- অনন্য নিয়ন্ত্রণ পরীক্ষা করুন
সম্পূর্ণ উদাহরণ
সমস্ত সন্নিবেশ কৌশলগুলিকে কভার করে সম্পূর্ণ উদাহরণ:
const mysql = require('mysql');
// Create connection
const con = mysql.createConnection({
host: "localhost",
user: "root",
password: "password",
database: "company_db"
});
// Connect to MySQL
con.connect((err) => {
if (err) {
console.error('Error connecting to MySQL:', err.message);
return;
}
console.log('Connected to MySQL database');
// Single record insertion
const singleRecordSQL = "INSERT INTO employees (first_name, last_name, email, salary) VALUES (?, ?, ?, ?)";
const singleValues = ["John", "Doe", "john.doe@company.com", 50000.00];
con.query(singleRecordSQL, singleValues, (err, result) => {
if (err) {
console.error('Error inserting single record:', err.message);
con.end();
return;
}
console.log(`Single record inserted with ID: ${result.insertId}`);
// Multiple records insertion
const multipleRecordsSQL = "INSERT INTO employees (first_name, last_name, email, salary) VALUES ?";
const multipleValues = [
["Jane", "Smith", "jane.smith@company.com", 55000.00],
["Bob", "Johnson", "bob.johnson@company.com", 60000.00],
["Alice", "Brown", "alice.brown@company.com", 52000.00]
];
con.query(multipleRecordsSQL, [multipleValues], (err, result) => {
if (err) {
console.error('Error inserting multiple records:', err.message);
con.end();
return;
}
console.log(`Multiple records inserted. Affected rows: ${result.affectedRows}`);
// Show all employees
con.query("SELECT * FROM employees", (err, results) => {
if (err) {
console.error('Error fetching employees:', err.message);
con.end();
return;
}
console.log('\nAll employees:');
results.forEach(employee => {
console.log(`ID: ${employee.id}, Name: ${employee.first_name} ${employee.last_name}, Email: ${employee.email}, Salary: ${employee.salary}`);
});
// Close connection
con.end((err) => {
if (err) {
console.error('Error closing connection:', err.message);
return;
}
console.log('\nConnection closed');
});
});
});
});
});
অনুশীলন করুন
সঠিক বৈশিষ্ট্য নাম নির্বাচন করুন.
পদার্থের ফলাফল______অ্যাট্রিবিউট দেখায় কতগুলি সারি একটি প্রশ্নের দ্বারা প্রভাবিত হয়েছিল।